// pages/biz/orderDetail/orderDet
import Serv from './orderDetailServ';
var regeneratorRuntime = require("../../../../lib/js/runtime-module.js")
import Util from '../../../../utils/util.js'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    status:0,
    statusMap:{ //根据订单状态,页面显示不同样式及内容
      1:{
        statusName:'竞拍未开始',
        statusTagColor:'tag_blue',
        buttonName:'联系客服',
        buttonStype:'',
        showTime: true
      },
      2: {
        statusName: '待支付',
        statusTagColor: 'tag_yellow',//
        buttonName: '立即支付',
        buttonStype: 'bg_blue',
      },
      3:{
        statusName:'竞拍中',//状态名称
        statusTagColor: 'tag_yellow',// tag_yellow , tag_grey , tag_pink, tag_blue 状态框颜色
        buttonName:'加价',//底部按钮文字，默认为‘联系客服’
        buttonStype:'bg_blue',//按钮颜色样式，默认为白底篮筐，border_blue
        showTime:true //是否展示时间
      },
      4:{
        statusName:'已支付',
        statusTagColor:'tag_blue',//
        buttonName:'联系销售',
        buttonStype:'',
      },
      5:{
        statusName:'支付超时',
        statusTagColor:'tag_grey',//
        buttonName:'联系销售',
        buttonStype:'',
      },
      6:{
        statusName:'待退款',
        statusTagColor:'tag_pink',//
        buttonName:'',
        buttonStype:'',
      },
      7:{
        statusName:'已退款',
        statusTagColor:'tag_grey',//
        buttonName:'',
        buttonStype:'',
      }
    },
    productDeType: [4, 5, 6, 7],
    productHouseType: [1, 2, 3]
  },
  //获取订单详情
  getOrderDetial: async function (id){
    let { data, success, msg } = await Serv.queryOrderDetail(id)
    if (success){
      //解决ios new Date()生成的时间字符串不能识别bug
      let endTime = Util.dateFromString(data.payTimeOut).getTime()
      this.setData({ endTime })

      //过滤数据
      if (data.startTime && data.endTime){
        let startTime = data.startTime.substr(0, data.startTime.length - 3),
          endTime = data.endTime.substr(0, data.endTime.length - 3)
        startTime = startTime.replace(/-/g, '.')
        endTime = endTime.replace(/-/g, '.')
        data.startTime = startTime
        data.endTime = endTime
      }
      // if(data.tags){
      //   data.tags = data.tags.split(',')
      // }
      if (data.tags && data.tags.length >= 3) {
        data.tags.splice(3, data.tags.length - 1)
      }
      
      //身份证打码
      data.cardNo = data.cardNo.replace(/^(.{4})(?:\d+)(.{4})$/, "$1**********$2")
      this.setData({ detail: data,status:data.status })

      //根据返回状态判断订单状态(后端负责人:林动) 同订单列表判断
      // let status = data.status,  //订单状态（1：待支付 2：支付成功 3:订单超时 8:待退款 9：已退款）
      //   type = data.type,        //类型（1：报名费 2：定金）
      //   activityStatus = data.activityStatus  //活动状态（1、未开始，2、已开始）注：只有待抢购的时候有用
      
      // if (status == 2 && type == 1 && activityStatus == 1) {
      //   this.setData({ status: 1 })
      // } else if (status == 2 && type == 1 && activityStatus == 2) {
      //   this.setData({ status: 2 })
      // } else if (type == 2 && status == 1) {
      //   this.setData({ status: 3 })
      //   this.countDown()
      // } else if (type == 2 && status == 2) {
      //   this.setData({ status: 4 })
      // } else if (type == 2 && status == 3) {
      //   this.setData({ status: 5 })
      // } else if (status != 2 && type == 1 && status == 8) {
      //   this.setData({ status: 6 })
      // } else if (status != 2 && type == 1 && status == 9) {
      //   this.setData({ status: 7 })
      // }
    }else{
      console.log(msg)
      wx.showToast({
        title: msg,
        icon:'none',
        duration:1000
      })
      setTimeout(()=>{
        wx.navigateBack({
          delta:1
        })
      },1000)
    }
  },
  //订单按钮根据订单状态区分作用
  toNextStep(){
    let status = this.data.status
    if (status == 1 || status == 5 || status == 6 || status == 7) {
      if (this.data.detail.estatePhone) {
        wx.makePhoneCall({ phoneNumber: this.data.detail.estatePhone })
      } else {
        wx.showToast({
          title: '暂无客服联系方式',
          icon: 'none'
        })
      }
    } else if(status == 3){
      let id = this.data.detail.seckillProductId
      wx.navigateTo({
        url: `/pages/biz/auctions/enterAuction/enterAuction?id=${id}`
      })
    }else if(status ==2){
      let orderid = this.data.detail.seckillOrderId
      let { seckillProductId,type } =this.data.detail
      if(type==1){
        //1为支付报名费
        wx.navigateTo({
          url: `/pages/biz/pay/payment/payment?seckillProductId=${seckillProductId}&actionType=3`
        })
      }else{
        //支付定金
        wx.navigateTo({
          url: `/pages/biz/pay/payment/payment?seckillOrderId=${orderid}&seckillProductId=${seckillProductId}&actionType=4`
        })
      }
      
    } else if (status == 4) {
      if (this.data.detail.consultantMobile){
        wx.makePhoneCall({ phoneNumber: this.data.detail.consultantMobile })
      }else{
        wx.showToast({
          title: '暂无销售联系方式',
          icon: 'none'
        })
      }
    }
  },

  countDown() {//倒计时函数
    // 获取当前时间，同时得到活动结束时间数组
    let newTime = new Date().getTime();
    // 对结束时间进行处理渲染到页面
    let endTime = this.data.endTime
    let obj = null;
    // 如果活动未结束，对时间进行处理
    if (endTime - newTime > 0) {
      let time = (endTime - newTime) / 1000;
      // 获取天、时、分、秒
      let day = parseInt(time / (60 * 60 * 24));
      let hou = parseInt(time % (60 * 60 * 24) / 3600);
      let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
      let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
      obj = {
        day: this.timeFormat(day),
        hou: this.timeFormat(hou),
        min: this.timeFormat(min),
        sec: this.timeFormat(sec)
      }
      // 渲染，然后每隔一秒执行一次倒计时函数
      this.setData({ countDown: { ...obj } })
      this.setData({ timeOut: setTimeout(this.countDown, 1000) })
    } else {//活动已结束，全部设置为'00'
      obj = {
        day: '00',
        hou: '00',
        min: '00',
        sec: '00'
      }
      this.setData({ status: 5, countDown: { ...obj } })
      clearTimeout(this.data.timeOut)
    }
    console.log(obj)
  },
  timeFormat(param) {//小于10的格式化函数
    return param < 10 ? '0' + param : param;
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let orderId = options.id
    this.setData({ orderId, tabIndex: options.tabIndex})
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getOrderDetial(this.data.orderId)
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    clearTimeout(this.data.timeOut)
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    clearTimeout(this.data.timeOut)
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    // let { rows, success, msg, total, pageNo } = await Serv.queryActivityList(params),
      wx.showNavigationBarLoading()
    this.getOrderDetial(this.data.orderId)
      wx.hideNavigationBarLoading() //完成停止加载
      wx.stopPullDownRefresh() //停止下拉刷新
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  filterStatus: function (statusList,curStatus) {
    return statusList.indexOf(Number(curStatus))
  },
})
